/*
 * GameEngine.h
 *
 *  Created on: Aug 13, 2011
 *      Author: Squall_Chua
 */

#ifndef GAMEENGINE_H_
#define GAMEENGINE_H_

#include <util/Singleton.h>
#include <hge/hge.h>
#include "tile/TileMap.h"
#include "gui/GuiManager.h"

#define GAMEENGINE projectcos::core::GameEngine::Instance()

namespace projectcos
{
namespace core
{

class GameEngine : public projectcos::util::Singleton<GameEngine>
{
public:
	GameEngine();

	bool Initialize();
	bool Start();
	void Shutdown();

	bool Update(float dt);
	bool Render();

protected:
private:
	static bool FrameFunc();
	static bool RenderFunc();

protected:
private:
	HGE* m_HGE;

	hgeQuad quad;
	projectcos::tile::TileMap* m_TileMap;
	projectcos::gui::GuiManager* m_Gui;

	float x;
	float y;
};

} // core
} // projectcos


#endif /* GAMEENGINE_H_ */
